package com.qys.livesMall.app.user.model.vo.sys;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class SysUserStatisticsVo {

    @Schema(description = "主键")
    private Long id;

    @Schema(description = "用户显示Id（用户账号）")
    private String userRandomId;

    @Schema(description = "用户账号")
    private String userAccount;

    @Schema(description = "昵称")
    private String nickName;

    @Schema(description = "用户id")
    private Long userId;

    @Schema(description = "用户等级")
    private String userLevel;

    @Schema(description = "层级")
    private Integer storey;

    @Schema(description = "手机号")
    private String phone;

    @Schema(description = "邮箱")
    private String mail;

    @Schema(description = "上级账号")
    private String superior;

    @Schema(description = "上级id")
    private String superiorId;

    @Schema(description = "代理名称")
    private String agentName;

    @Schema(description = "代理账号")
    private String agentAccount;

    @Schema(description = "过期数量")
    private Integer expireNumber;

    @Schema(description = "近期过期人数")
    private Integer expireRecent;

    @Schema(description = "20天新增")
    private Integer recentAdd;

    @Schema(description = "直推人数")
    private Integer directNumber;

    @Schema(description = "2代人数")
    private Integer twoNumber;

    @Schema(description = "3代人数")
    private Integer threeNumber;

    @Schema(description = "团队人数")
    private Integer num;

    @Schema(description = "注册人数")
    private Integer registerNum;

    @Schema(description = "充提差额")
    private BigDecimal difference;

    @Schema(description = "充值金额")
    private BigDecimal recharge;

    @Schema(description = "提现金额")
    private BigDecimal withdrawal;

    @Schema(description = "当前余额")
    private BigDecimal balance;

    @Schema(description = "当前代币")
    private BigDecimal tokens;

    @Schema(description = "团队充提差额")
    private BigDecimal teamDifference;

    @Schema(description = "待提现金额")
    private BigDecimal waitWithdrawal;

    @Schema(description = "是否充值")
    private Integer isRecharge;

    @Schema(description = "店铺id")
    private Long shopId;

    @Schema(description = "商铺等级")
    private String shopLevel;

    @Schema(description = "店铺订单数量")
    private Integer shopOrderNum;

    @Schema(description = "店铺收益")
    private BigDecimal shopIncome;

    @Schema(description = "店铺名")
    private String shopName;

    @Schema(description = "主播礼物收益")
    private BigDecimal anchorGiftIncome;

    @Schema(description = "主播订单收益")
    private BigDecimal anchorOrderIncome;

    @Schema(description = "提现次数")
    private Integer withdrawalNumber;

    @Schema(description = "充值次数")
    private Integer rechargeNumber;

    @Schema(description = "同注册IP数")
    private Integer ipRegisterNumber;

    @Schema(description = "同注册活跃IP数")
    private Integer ipActiveNumber;

    @Schema(description = "备注")
    private String notes;

    @Schema(description = "今日个人收益")
    private BigDecimal todayIncome;

    @Schema(description = "累计个人收益")
    private BigDecimal cumulative;

    @Schema(description = "今日团收益")
    private BigDecimal teamTodayIncome;

    @Schema(description = "累计团收益")
    private BigDecimal teamCumulative;

    /**
     * 团123复冲金额
     */
    @Schema(description = "团123复冲金额")
    private BigDecimal rechargeAmount;

    /**
     *123代提现金额
     */
    @Schema(description = "团123代提现金额")
    private BigDecimal withdrawalAmount;

    @Schema(description = "团复充值金额")
    private BigDecimal teamRechargeAmount;

    @Schema(description = "团提现金额")
    private BigDecimal teamWithdrawalAmount;

    @Schema(description = "钱包地址")
    private String walletAddress;

    @Schema(description = "团队ID")
    private Long teamId;

    @Schema(description = "首充日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+0")
    private LocalDateTime firstCharge;

    @Schema(description = "首充天数")
    private Integer firstChargeDay;

    @Schema(description = "注册时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+0")
    private LocalDateTime registerTime;

    @Schema(description = "注册ip")
    private String registerIp;

    @Schema(description = "最后操作IP")
    private String finalOperateIp;

    @Schema(description = "最后操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+0")
    private LocalDateTime finalOperateTime;

    @Schema(description = "国家")
    private String country;

    @Schema(description = "状态")
    private String state;

    @Schema(description = "邀请码")
    private String inviteCode;

    @Schema(description = "虚拟用户 0:虚拟用户，1：正常用户")
    private String virtualUsers;

    @Schema(description = "锁定")
    private Integer lockState;
}
